package advanced.thread;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * 多线程的创建
 * <p>
 * <p>
 * 调用   start  将任务加入调度器中,不一定立马执行
 * 调用   run     方法是相当于调用普通方法,立马执行,不是线程的思想
 * <p>
 * <p>
 * <p>
 * <p>
 * 所以一顶要调用start才是真正的进行线程调用
 */
public class L_Thread extends Thread {
    static String localRoot = "C:\\Users\\DMLYS\\Documents\\prepare_for_work\\pfw\\java_l\\src\\main\\java\\advanced\\thread";

    public static void main(String[] args) {

        new L_Thread().start();//交给cpu调用
        for (int i = 0; i < 200; i++) {
            System.out.println("一遍听歌");
        }
        new Thread(new Runnable() {
            @Override
            public void run() {
                download("https://www.baidu.com/img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png?where=super", localRoot + "/baidu_logo");
            }
        }).start();
    }

    @Override
    public void run() {
        //线程体/ 该线程要执行的任务内容
        for (int i = 0; i < 200; i++) {
            System.out.println("一边Coding");
        }
    }

    /**
     * 下载图片到本地
     *
     * @param url
     * @param name
     */
    public static void download(String url, String name) {
        try {
            FileUtils.copyURLToFile(new URL(url), new File(name));
        } catch (IOException e) {
            System.out.println("不合法的url");
            e.printStackTrace();
        }
    }
}
